package com.cskaoyan.javase.oop2.encapsulate._1extends._10final._3variable._3static;

/**
 * (了解) 访问类的全局常量,在某些情况下,不会触发该类的类初始化,表现为该类的静态代码块不会执行
 *
 * 访问类的"使用字面值常量显式赋值的全局常量",不会触发类的初始化,类的静态代码块不会执行.
 * 这种类型的全局常量相当于给字面值起个名字,由于懒加载,于是JVM做了优化,就不进行类的初始化
 *
 * @since 10:19
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        // System.out.println(B.var);
        // System.out.println(B.var2);
        // System.out.println(B.var3);
        // System.out.println(B.var4);
        System.out.println(B.var5);
    }
}

class B {
    static final int var = 10;
    static final double var2 = 0.1;
    static final boolean var3 = true;
    static final String var4 = "hello";
    static final String var5 = new String("hello");

    static {
        System.out.println("B类进行了初始化的过程!");
    }
}
